﻿using System;

namespace SharpSqlAnalyzer.nodes
{
	// Token: 0x02000363 RID: 867
	public class TTrimArgument : TParseTreeNode
	{
		// Token: 0x170007A1 RID: 1953
		// (get) Token: 0x060023E4 RID: 9188 RVA: 0x00337EAE File Offset: 0x003360AE
		public virtual bool Both
		{
			get
			{
				return this.both_trailing_leading != null && this.both_trailing_leading.ToString().Equals("both", StringComparison.CurrentCultureIgnoreCase);
			}
		}

		// Token: 0x170007A2 RID: 1954
		// (get) Token: 0x060023E5 RID: 9189 RVA: 0x00337ED0 File Offset: 0x003360D0
		public virtual bool Trailing
		{
			get
			{
				return this.both_trailing_leading != null && this.both_trailing_leading.ToString().Equals("trailing", StringComparison.CurrentCultureIgnoreCase);
			}
		}

		// Token: 0x170007A3 RID: 1955
		// (get) Token: 0x060023E6 RID: 9190 RVA: 0x00337EF2 File Offset: 0x003360F2
		public virtual bool Leading
		{
			get
			{
				return this.both_trailing_leading != null && this.both_trailing_leading.ToString().Equals("leading", StringComparison.CurrentCultureIgnoreCase);
			}
		}

		// Token: 0x060023E7 RID: 9191 RVA: 0x00337F14 File Offset: 0x00336114
		public override void init(object arg1, object arg2, object arg3)
		{
			if (arg1 != null)
			{
				this.both_trailing_leading = (TSourceToken)arg1;
			}
			if (arg2 != null)
			{
				this.trimCharacter = (TExpression)arg2;
			}
			this.stringExpression = (TExpression)arg3;
		}

		// Token: 0x170007A4 RID: 1956
		// (get) Token: 0x060023E8 RID: 9192 RVA: 0x00337F40 File Offset: 0x00336140
		public virtual TSourceToken Both_trailing_leading
		{
			get
			{
				return this.both_trailing_leading;
			}
		}

		// Token: 0x170007A5 RID: 1957
		// (get) Token: 0x060023E9 RID: 9193 RVA: 0x00337F48 File Offset: 0x00336148
		// (set) Token: 0x060023EA RID: 9194 RVA: 0x00337F50 File Offset: 0x00336150
		public virtual TExpression StringExpression
		{
			get
			{
				return this.stringExpression;
			}
			set
			{
				this.stringExpression = value;
			}
		}

		// Token: 0x170007A6 RID: 1958
		// (get) Token: 0x060023EB RID: 9195 RVA: 0x00337F59 File Offset: 0x00336159
		// (set) Token: 0x060023EC RID: 9196 RVA: 0x00337F61 File Offset: 0x00336161
		public virtual TExpression TrimCharacter
		{
			get
			{
				return this.trimCharacter;
			}
			set
			{
				this.trimCharacter = value;
			}
		}

		// Token: 0x060023ED RID: 9197 RVA: 0x00337F6A File Offset: 0x0033616A
		public override void doParse(TCustomSqlStatement psql, ESqlClause plocation)
		{
			if (this.trimCharacter != null)
			{
				this.trimCharacter.doParse(psql, plocation);
			}
			this.stringExpression.doParse(psql, plocation);
		}

		// Token: 0x060023EE RID: 9198 RVA: 0x00337F8E File Offset: 0x0033618E
		public override void accept(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x060023EF RID: 9199 RVA: 0x00337F9E File Offset: 0x0033619E
		public override void acceptChildren(TParseTreeVisitor v)
		{
			v.preVisit(this);
			this.stringExpression.acceptChildren(v);
			v.postVisit(this);
		}

		// Token: 0x04001BEC RID: 7148
		private TExpression stringExpression;

		// Token: 0x04001BED RID: 7149
		private TExpression trimCharacter;

		// Token: 0x04001BEE RID: 7150
		private TSourceToken both_trailing_leading;
	}
}
